import Vue from "vue";
import Router from "vue-router";

Vue.use(Router);
/* Layout */
import Layout from "@/layout";
import { routeList } from "./route.js";
const Login = () => import("@/views/login/index");
// 判断是否有登录页
let loginList = [];
if (!window.$loginUrl) {
  // 需要个人系统登录页
  loginList = [
    {
      path: "/login",
      component: Login,
      hidden: true
    },
    {
      path: "/",
      redirect: "/login"
    }
  ];
}
export const constantRoutes = [
  ...loginList,
  {
    path: "/redirect",
    component: Layout,
    hidden: true,
    children: [
      {
        path: "/redirect/:path*",
        component: () => import("@/views/redirect/index")
      }
    ]
  },
  {
    path: "/auth-redirect",
    component: () => import("@/views/login/auth-redirect"),
    hidden: true
  },
  {
    path: "/404",
    component: () => import("@/views/error-page/404"),
    hidden: true
  },
  {
    path: "/401",
    component: () => import("@/views/error-page/401"),
    hidden: true
  },
  {
    path: "*",
    redirect: "/welcome"
  },
  {
    path: "/welcome",
    component: Layout,
    children: [
      {
        path: "/welcome",
        component: () => import("@/views/welcome/index.vue"),
        name: "welcome",
        meta: { title: "首页", icon: "user", noCache: false, affix: true }
      },
      ...routeList
    ]
  }
];

/**
 * asyncRoutes
 * the routes that need to be dynamically loaded based on user roles
 */
export const asyncRoutes = [];

const createRouter = () => new Router({
  // mode: 'history', // require service support
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
});

const router = createRouter();

// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() {
  const newRouter = createRouter();
  router.matcher = newRouter.matcher; // reset router
}

export default router;
